package basic

import (
	"fmt"
)

/**
扩展原有的结构体
*/

type MyTreeNode struct {
	node *TreeNode // 直接把类型往这里一扔
}

// 定义我们自己的方法
func (node *MyTreeNode) hx() {

	//treeNode := MyTreeNode{node.node.left}
	//treeNode.hx()
}

/**
通过别名的方法
*/

type Queue []int

func (q *Queue) qs(v int) {
	*q = append(*q, v)
}

func (q *Queue) pop() int {
	first := (*q)[0]

	*q = (*q)[1:]

	return first
}

func Pkg() {
	fmt.Println("pkg")

	// GOPATH 环境变量
	// 默认在 ～/go(unix,linux), %USERPROFILE%\go(windows)
	// 官方推荐： 所有项目和第三方库都放在同一个GOPATH下
	// 也可将每个项目放在不同的GOPATH下面
	// 这玩意就是设置个环境变量
	// 系统库知道去哪找
	// 非系统库来到GOPATH下面找
	// GOROOT 一般不需要管， 包的查找先去GOROOT找在去GOPATH找
	// 在引入包的时候如果没有使用到保存编辑器如何干掉？
	// goland->prexx->tools->file->wathers->添加import 新编辑器默认不需要安装这个包了
	// 配置一个安装快防止强的方案
	// gopm 获取无法下载的包 go get -v github.com/gpmgo/gopm
	// go 目录详解
	// src 是源代码包文件 bin是可执行文件  pkg 编译的一些中间文件  bin 可执行文件 这个目录需要放到path下
	// gopm的使用 gopm get -g -v 安装包  注意这个在windows貌似有问题
	// go gopm -u 是update
	// gopm 只是把包能下来 需要go build gopm get path  的path 你下载下来包的路径 注意这个只是生成bin文件 注意在你大命令的目录生成编译可执行文件
	// 所以我们需要用go install gopm get path  的path
	// pkg src 目录结构一一对应 pkg是中间过程
	// go 第三方库 自己的库 系统库
	// 每个目录下面都需要有个main文件如果是库不需要
	// 当然如果想对单独的库公开编译安装搞个main函数然后把里面的文件挪到文件夹里面去保证main文件 库文件在文件夹库的结构

	fmt.Println("")
}
